Modern retailers, for example, modern chain supermarkets, maintain large amounts of price information. Frequently, price information for a large number of stores in different areas and regions is maintained in a central data repository accessible to many stores. Price information is updated frequently, and different price structures and additions and changes to those price structures may be implemented for different stores and regions. Price information may be relatively permanent, or may be temporary, being effective during clearly defined periods designated by start and end dates. Temporary prices may include, for example, price reductions for particular products due to weekly specials. Such temporary price information may be distributed or otherwise be made available to stores at specific locations or regions for use during the period in which they are effective, but it may not be desired to use such price information as permanent changes to a central database.
Large numbers of price changes may be performed at one time, or at designated times, and it would be convenient to be able to assemble a large number of changes and to enter the changes on command or according to a schedule. It would also be convenient to create and store the changes in a self contained way, so that an entry modifying a previously existing entry or representing a new entry does not, by virtue of its creation and storage, cause any change to the presently existing entry, or to its use. It would also be useful to be able to assemble presently existing entries, new entries, and entries representing changes to previous entries, in such a way that all the entries are accessible in a common repository, and to be able to see the effects of changes without actually implementing or committing the changes as a result of the procedures needed to see the their effects. It would further be convenient to be able to add temporary changes that would automatically expire without a need for further intervention. It would further be convenient to be able to maintain a record of changes to data stored in the database in order to review a history of the changes and to reverse the changes as desired.